package sun.superstring.gui2;

import javax.swing.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Test {
    public static void main(String[] args) {
        // 目标：认识GUI的事件处理机制
        JFrame win = new JFrame("登录窗口");

        JPanel panel = new JPanel();
        win.add(panel);

        win.setSize(500,400); // 窗口大小
        win.setLocationRelativeTo(null); // 居中显示
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  // 点击关闭按钮，程序退出

        JButton btn = new JButton("登录");
        panel.add(btn);

        // 给按钮绑定点击事件监听器
        /*btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 一旦点击了btn按钮，底层就触发这个方法执行
                // e 是事件对象，封装了事件相关信息
                JOptionPane.showMessageDialog(win, "有人点击了登录！");
            }
        });*/
        btn.addActionListener(e -> JOptionPane.showMessageDialog(win, "有人点击了登录！") );


        // 需求：监听用户键盘上下左右四个按键事件
        // 给win窗口整体绑定按键事件。
        btn.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                // 获取键盘按下的编码
                int keyCode = e.getKeyCode(); // 拿事件源头的键盘编号
                // 判断按键编码是否是上、下、左、右
                if (keyCode == KeyEvent.VK_UP) {
                    System.out.println("向上");
                } else if (keyCode == KeyEvent.VK_DOWN) {
                    System.out.println("向下");
                } else if (keyCode == KeyEvent.VK_LEFT) {
                    System.out.println("向左");
                } else if (keyCode == KeyEvent.VK_RIGHT) {
                    System.out.println("向右");
                }
            }
        });

        win.setVisible(true);  // 显示窗口

        // 让窗口成为焦点
        win.requestFocus();
    }
}
